//! \file Sequence_TODO.h
//! \brief Defines the <code>fullsail_ai::fundamentals::Sequence</code> class.
//! \author Jeremiah Blanchard

#include <queue>
#include <stack>
#include "Sequence.h"

namespace fullsail_ai { namespace fundamentals {

	Sequence::Sequence(char const* _description) : Behavior(_description)
	{
	}

	bool Sequence::run(void (*dataFunction)(Behavior const*), Agent* agent)
	{
		unsigned int numChildren = children.size();
		unsigned int childSuccess = 0;
		for (unsigned int i = 0; i < numChildren; i++)
		{
			if (children[i]->run(dataFunction, agent))
				childSuccess++;
		}

		if (childSuccess == numChildren)
		{
			dataFunction(this);
			return true;
		}
		else
			return false;
	}

}}  // namespace fullsail_ai::fundamentals
